public class LinkedListSet<E> implements Set<E>{
    private LinkedList<E> list;

    public LinkedListSet(){
        list = new LinkedList<>();
    }
    @Override
    public void add(E e) {
        // 因为链表没有去重功能，所以先判断一下，不重复才让添加
        if (!list.contains(e)){
            // 添加到头节点，因为添加头节点的复杂度是O(1)
            list.addFirst(e);
        }
    }

    @Override
    public void remove(E e) {
        list.removeElement(e);
    }

    @Override
    public boolean contains(E e) {
        return list.contains(e);
    }

    @Override
    public int getSize() {
        return list.getSize();
    }

    @Override
    public boolean isEmpty() {
        return list.isEmpty();
    }
}
